// import axios from 'axios'
// import type { AxiosInstance, AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios'
// import { ElMessage, ElLoading } from 'element-plus'
// import router from '@/router'

// export let baseURL: string
// export let wsUrl: string

// if (process.env.NODE_ENV === 'development') {
//   baseURL = 'http://192.168.44.59:8080'
//   // baseURL = '/api'
//   wsUrl = 'ws://192.168.44.59:8080/websocket/scoringMonitoring'
// } else {
//   baseURL = window.biddingBaseUrl
//   wsUrl = window.biddingWsUrl
// }
// export const axiosInstance: AxiosInstance = axios.create({
//   baseURL,
//   timeout: 60000
// })

// let loadingInstance: any
// let time: any
// const closeLoading = () => {
//   loadingInstance && loadingInstance.close()
//   time && clearTimeout(time)
// }

// /* 请求拦截器 */
// axiosInstance.interceptors.request.use((config: any) => {
//   const user = JSON.parse(localStorage.getItem('token') as string)
//   if (user) {
//     config.headers['Authorization'] = `Bearer ${user}`
//   }

//   // 默认params没有_loading属性,为undefind，在接口parmas参数加入_loading:false请求就不添加loading了
//   if (config.params?._loading === undefined) {
//     loadingInstance = ElLoading.service({
//       lock: true,
//       text: '拼命加载中···',
//       spinner: 'el-icon-loading',
//       background: 'rgba(0, 0, 0, 0.7)'
//     });
//     time = setTimeout(() => {
//       loadingInstance.close()
//     }, 60000)
//   }
//   return config
// },
//   (error: AxiosError) => {
//     closeLoading()
//     ElMessage.error(error.message)
//     return Promise.reject(error)
//   }
// )

// /* 响应拦截 */
// axiosInstance.interceptors.response.use((response: AxiosResponse) => {
//   return new Promise((resolve, reject) => {
//     if (response.status === 200) {
//       closeLoading()
//       if (!response.data.code) {
//         const resType = Object.prototype.toString.call(response.data);
//         const isBlob = resType === '[object Blob]';
//         if (isBlob || resType === '[object Blob]') return resolve(response);
//       }
//       if (response.data.code >= 300) {
//         if (response.data.msg) {
//           if (response.data.code === 401) {
//             localStorage.removeItem('token')
//             router.push('/')
//           }
//           ElMessage.error(response.data.msg)
//         } else {
//           let msg = ``
//           const code = response.data.code
//           switch (code) {
//             case 401:
//               msg = `token失效，请重新登录`
//               localStorage.removeItem('token')
//               router.push('/')
//               break
//             case 403:
//               msg = `拒绝访问`
//               break
//             case 404:
//               msg = `请求未找到`
//               break
//             case 500:
//               msg = `服务器内部错误`
//               break
//             default:
//               msg = `未知错误`
//           }
//           ElMessage.error(msg)
//         }
//         return reject(new Error(response.data))
//       }
//       return resolve(response.data)
//     } else {
//       closeLoading()
//       ElMessage.error(response.data)
//       return reject(new Error(response.data))
//     }
//   })
// },
//   (error: AxiosError) => {
//     closeLoading()
//     //处理HTTP网络错误
//     let msg = ``
//     const status = error.response?.status
//     switch (status) {
//       case 401:
//         msg = `token失效，请重新登录`
//         break
//       case 403:
//         msg = `拒绝访问`
//         break
//       case 404:
//         msg = `请求未找到`
//         break
//       case 500:
//         msg = `服务器内部错误`
//         break
//       default:
//         msg = `请求网络错误`
//     }
//     ElMessage.error(msg)
//     return Promise.reject(msg)
//   }
// )

// /* 导出请求方法 */
// export const http = {
//   get<T = any>(url: string, config?: AxiosRequestConfig): Promise<T> {
//     return axiosInstance.get(url, config)
//   },
//   post<T = any>(url: string, data?: object, config?: AxiosRequestConfig): Promise<T> {
//     return axiosInstance.post(url, data, config)
//   },
//   put<T = any>(url: string, data?: object, config?: AxiosRequestConfig): Promise<T> {
//     return axiosInstance.put(url, data, config)
//   },
//   delete<T = any>(url: string, config?: AxiosRequestConfig): Promise<T> {
//     return axiosInstance.delete(url, config)
//   },
//   //在线预览，返回的是blob类型responseType：blob
//   review<T = any>(url: string, config: AxiosRequestConfig = { responseType: 'blob' }): Promise<T> {
//     return axiosInstance.get(url, config)
//   },
//   reviewXls<T = any>(url: string, config: AxiosRequestConfig = { responseType: 'arraybuffer' }): Promise<T> {
//     return axiosInstance.get(url, config)
//   }
// }

